package com.rongx.controller;

import cn.hutool.core.io.IoUtil;
import cn.hutool.json.JSONConfig;
import cn.hutool.json.JSONUtil; // 确保引入Hutool的JSON工具类
import com.rongx.pojo.User;
import com.rongx.service.UserService;
import com.rongx.service.UserServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

@RestController
public class UserController {
    private final UserService userService;

    @Autowired
    public UserController(UserService userService) {
        this.userService = userService;
    }

    @RequestMapping("/list")
    public List<User> list(){
        //1.调用Service
        List<User> userList = userService.findAll();
        //2.响应数据
        return userList;
    }

}
//@RestController
//public class UserController {
//    @RequestMapping("list")
//    public String list(){
//        // 1. 加载并读取文件（增加空指针判断）
//        InputStream in = this.getClass().getClassLoader().getResourceAsStream("user.txt");
//        if (in == null) {
//            return JSONUtil.toJsonStr("文件user.txt不存在"); // 处理文件不存在的情况
//        }
//
//        ArrayList<String> lines = IoUtil.readLines(in, StandardCharsets.UTF_8, new ArrayList<>());
//        IoUtil.close(in); // 手动关闭流，释放资源（Hutool的readLines可能已自动关闭，但显式关闭更安全）
//
//        // 2. 解析数据，封装成对象集合（假设User类有对应的构造函数）
//        List<User> userList = lines.stream().map(line -> {
//            String[] parts = line.split(",");
//            // 增加数组长度校验，避免数组越界
//            if (parts.length != 6) {
//                throw new RuntimeException("数据格式错误：" + line);
//            }
//            Integer id = Integer.parseInt(parts[0]);
//            String username = parts[1];
//            String password = parts[2];
//            String name = parts[3];
//            Integer age = Integer.parseInt(parts[4]);
//            LocalDateTime updateTime = LocalDateTime.parse(parts[5], DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
//
//            return new User(id, username, password, name, age, updateTime);
//        }).collect(Collectors.toList());
//
//        // 3. 响应JSON格式数据（启用JSON转换，匹配返回值类型）
//        return JSONUtil.toJsonStr(userList, JSONConfig.create().setDateFormat("yyyy-MM-dd HH:mm:ss"));
//    }
//}